Android Material Design:Snackbar详解

Snackbar是什么

Snackbar是Design Support Library库中的一个控件它是用来替代Toast的一个全新的控件,Snackbar与Toast最大的区别是Snackbar支持点击和滑动和滑动消失,如果用户没有进行操作它也会在到达指定时间后自动消失。

Snackbar的使用

●最简单的Snackbar

button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
       Snackbar.make(view,"我是Snackbar",Snackbar.LENGTH_SHORT).show();
    }
});

image

●能够点击的Snackbar

button=findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view,"我是Snackbar",Snackbar.LENGTH_SHORT).setAction("点击", new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(MainActivity.this, "我是点击后的信息", Toast.LENGTH_SHORT).show();
                }
            }).show();
        }
    });

image

●添加自定义布局

xml布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:paddingTop="20dp"
    android:paddingBottom="20dp"
    android:layout_height="match_parent">
    <ImageView
        android:layout_width="wrap_content"
        android:src="@mipmap/ic_launcher"
        android:layout_centerVertical="true"
        android:layout_height="wrap_content" />
    <Button
        android:layout_width="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:text="点击"
        android:id="@+id/bttest"
        android:layout_height="wrap_content" />
</RelativeLayout>
java代码
Snackbar snackbar = Snackbar.make(view, "", Snackbar.LENGTH_SHORT);
View view1 = snackbar.getView();
view1.setBackgroundColor(Color.RED);
Snackbar.SnackbarLayout snackbarLayout= (Snackbar.SnackbarLayout) view1;
View inflate = View.inflate(MainActivity.this, R.layout.snackbar, null);
inflate.findViewById(R.id.bttest).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
      Toast.makeText(MainActivity.this, "点击按钮啦", Toast.LENGTH_SHORT).show();
                }
});
snackbarLayout.addView(inflate);
snackbar.show();

image

●将布局改为CoordinatorLayout可以实现滑动消失效果

xml布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout     xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/content"
    tools:context=".MainActivity">
    <Button
        android:layout_width="wrap_content"
        android:text="测试"
        android:id="@+id/button"
        android:layout_height="wrap_content" />


</android.support.design.widget.CoordinatorLayout>

image

坚持原创技术分享,您的支持将鼓励我继续创作!
-------------本文结束感谢您的阅读-------------